package regex.test1;

import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
 * @author 甘赵辉
 * @date 2023/3/1
 */
public class Main {
    public static void main(String[] args) {
        //正则表达式
        String regex ="a*b";

        //目标文本(要被正则匹配的字符串)
        String input ="aaaaabab";//aaaaabab ->  aaaaab

        // 通过正则表达式, 创建表达式 '模式对象'
        Pattern p = Pattern.compile(regex);

        // 使用 模式对象 匹配 目标文本, 返回 匹配器对象
        Matcher m = p.matcher(input);

        //匹配器对象 用正则匹配目标文本(目标文本是 正则表达式 这种模式吗)
        boolean b = m.matches();//返回boolean类型, true表示匹配成功,false表示匹配失败
        System.out.println("m.matches(): "+b);//打印匹配结果

        //匹配器对象 查找是否有匹配的子集
        b = m.find();
        System.out.println("m.find(): "+b);

        //匹配器对象 指定的索引开始查找是否有匹配的子集
        int startIndex = 8;//7 -> 8 (8表示第八个字符)
        b = m.find(startIndex);
        System.out.println("m.find("+startIndex+"): "+b);

        /*
        Pattern.matches(regex, input)
            参数:
                regex : 正则表达式
                input : 目标文本(要被正则匹配的字符串)
            return:
                boolean类型, true表示匹配成功,false表示匹配失败
         */
        b = Pattern.matches (regex,input);//返回 true
        System.out.println("Pattern.matches("+regex+","+input+"): "+b);



    }

}
